草庐IT

iOS UIScrollView 性能

全部标签

c# - 从 C# 调用非托管 .dll 的性能

使用以下语法从C#应用程序调用以C++编写的.dll会增加多长时间的典型开销?[DllImport("abc.dll",EntryPoint="xcFoo",CallingConvention=CallingConvention.Cdecl)]publicexternstaticResultFoo(outIntPtrsession,[MarshalAs(UnmanagedType.FunctionPtr)]ObjectCallbackcallback,UInt64turnKey,stringserverAddress,stringuserId,stringpassword);有没有更有

c++ - 针对 C++ 用户的 Visual Studio 2010 与 2012 编译时性能和稳定性比较

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。作为VS2010SP1的C++用户,我经常被缓慢的编译速度(在QC机器上)和臭名昭著的“等待内部操作...”所激怒:(有时很长又名无限:()卡住。所以我想知道:VS10vsVS11的编译速度是多少(我主要对调试编译速度感兴趣)编译器在VS11中更稳定吗?编辑:我更喜欢1)的真实数据,而不是“感觉好多了”或“看起来一样”...

C++缓存性能奇怪的行为

我读了一篇文章(1.5岁的http://www.drdobbs.com/parallel/cache-friendly-code-solving-manycores-ne/240012736),其中谈到了缓存性能和数据大小。他们显示了以下代码,他们说它们在i7(桑迪桥)上运行staticvolatileintarray[Size];staticvoidtest_function(void){for(inti=0;i他们声称,如果保持Size*Iterations不变,则增加Size,当数组内存的大小增加到超过L2高速缓存大小时,它们会观察到执行所需的巨大时间高峰(10x)。作为我自己的

c++ - 如何检测错误共享会降低性能?

我正在调整一个高性能多线程应用程序,我怀疑错误共享可能是导致性能不佳的原因。我如何验证是否属于这种情况?我在Ubuntu12.04上使用gcc4.82运行C++。 最佳答案 我将发布一些我刚从C++并发实战中了解到的内容。测试错误共享的一种方法是在数据元素之间添加巨大的填充block,这些数据元素可以被不同线程并发访问。structprotected_data{std::mutexm;charpadding[65536];my_datadata_to_protect;};如果这提高了性能,那么您就知道错误共享是一个问题。

c++ - double 的高性能加法和乘法的常量形式

我需要在循环中有效地将一些常量添加或乘以double类型的结果以防止下溢。例如,如果我们有int,则乘以2的幂将很快,因为编译器将使用位移位。是否有一种常量形式可用于高效的double加法和乘法?编辑:似乎没有多少人理解我的问题,为我的草率道歉。我将添加一些代码。如果a是一个int,这个(乘以2的幂)会更有效率inta=1;for(...)for(...)a*=somefunction()*1024;当1024被替换为1023时。不确定如果我们想添加到int什么是最好的,但这不是我的兴趣。我对a是double的情况很感兴趣。哪些形式的常量(例如2的幂)可以有效地和相乘成double?常

c++ - 浮点转换和性能

我知道在float和整数之间进行转换时可能会出现错误,但是性能如何(请忽略精度问题)?如果我对不同算术类型的操作数进行n元运算,即对不同的浮点类型(例如float和double)和浮点/整数类型组合(例如float和int)?是否存在经验法则,例如让所有操作数保持同一类型?P.S.:我问是因为我正在编写一个表达式模板库,并且想知道是否允许对包含不同算术类型的值的vector进行二元运算。 最佳答案 我怀疑这个问题的答案会因目标架构而异,因为转换可以(但可能不会)发生在硬件中。例如,考虑以下代码,它导致int和float之间的一些相互

c++ - c++中不规则的文件写入性能

我正在编写一个应用程序,它通过一个简单的函数调用接收二进制数据流,例如put(DataBLock,dateTime);,其中每个数据包为4MB我必须将这些数据block写入单独的文件,以便将来使用一些额外的数据,如id、插入时间、标签等...所以我都尝试了这两种方法:首先使用FILE:data.id=seedFileId;seedFileId++;std::stringfileName=getFileName(data.id);char*fNameArray=(char*)fileName.c_str();FILE*pFile;pFile=fopen(fNameArray,"wb");

c++ - 您将如何对函数的性能进行基准测试?

这可能是一个更高级的问题。如果您有两个返回值的函数,intF(intinput1,intinput2){intoutput;//returnoutput;}intD(intinput1,intinput2){intoutput;//returnoutput;}条件是F(a,b)==D(a,b)(对于相同的输入,两者都返回相同的值)。如果您想对他们的表现进行基准测试,您会怎么做?更准确地说,您将如何隔离执行F(a,b)或D(a,b)所花费的时间,使其不strong>反射(reflect)基准设置中其他辅助操作所花费的时间? 最佳答案

c++ - 嵌套 vector 与连续数组的性能影响

是否有任何可靠的测试可以清楚地显示访问和写入嵌套vector与C++的内置数组之间的性能差异?我听说与访问单个数组中的元素(所有元素都存储在连续内存中)相比,使用嵌套(多维)vector通常会产生一些性能开销,但这对我来说似乎都是假设。我还没有看到任何实际显示这些差异的测试。它们重要吗?我确信这取决于场景,但作为一个没有经验的程序员,我不太确定这些差异在多大程度上会变得显着。 最佳答案 这绝对取决于场景,在某种程度上,我认为不可能以一般方式回答哪种方法最快。最快的方法是访问模式具有最佳数据局部性的方法——这在很大程度上取决于访问模式

python - 基准矩阵乘法性能 : C++ (eigen) is much slower than Python

我正在尝试评估与C++相比,Python的性能有多好。这是我的Python代码:a=np.random.rand(1000,1000)#typeisautomaicallyfloat64b=np.random.rand(1000,1000)c=np.empty((1000,1000),dtype='float64')%timeita.dot(b,out=c)#15.5ms±560µsperloop(mean±std.dev.of7runs,100loopseach)这是我在发布机制中使用Xcode编译的C++代码:#include#include#includeusingnamespa